class ListNode {
      int val;
    ListNode next;
    ListNode() {}
      ListNode(int val) { this.val = val; }
      ListNode(int val, ListNode next) { this.val = val; this.next = next; }
  }
public class Solution {
    public ListNode removeElements(ListNode head, int val) {
        ListNode dummy_head = new ListNode(0,head);
        ListNode pre = dummy_head;
        while (pre != null && pre.next != null) {
            if (pre.next.val == val) {
                pre.next = pre.next.next;
            } else {
                pre = pre.next;
            }

        }
        return dummy_head.next;
    }
}